package com.ollobot.authorization.exception;

/**
 * 频率限制异常
 * 当用户操作过于频繁时抛出此异常
 */
public class RateBeyondException extends RuntimeException {
    
    private final long remainingSeconds;
    
    /**
     * 构造函数
     * @param message 异常消息
     * @param remainingSeconds 剩余等待时间（秒）
     */
    public RateBeyondException(String message, long remainingSeconds) {
        super(message);
        this.remainingSeconds = remainingSeconds;
    }
    
    /**
     * 构造函数
     * @param remainingSeconds 剩余等待时间（秒）
     */
    public RateBeyondException(long remainingSeconds) {
        super("发送过于频繁，请" + remainingSeconds + "秒后再试");
        this.remainingSeconds = remainingSeconds;
    }
    
    /**
     * 获取剩余等待时间
     * @return 剩余等待时间（秒）
     */
    public long getRemainingSeconds() {
        return remainingSeconds;
    }
}
